package com.nextel.project.pedido.rms;

import com.nextel.project.Configuracion;
import com.nextel.project.pedido.bean.ArticuloBean;
import pe.com.nextel.rms.GestorRMS;
import pe.com.nextel.rms.Persistente;
import java.util.Stack;
import pe.com.nextel.util.ArrayList;
import pe.com.nextel.util.List;


/**
 *
 * @author eespinoza
 */
public class RMSArticulo extends GestorRMS {
    
    private ArticuloBean bean = new ArticuloBean();
    
    
    public RMSArticulo() {
        super("RMS_ARTICULO");
        
    }
    
    protected Persistente createObjectBean() {
        return bean;
    }
    
//    public void actualizarArticulo(ArticuloBean bean) throws Exception {
//        try {
//            abrirRS();
//            byte[] array = getRecord(bean.getIdRecodset());
//            rs.setRecord(bean.getIdRecodset(), array, 0, array.length);
//        } finally {
//            cerrarRS();
//        }
//    }
    
    public void actualizarArticulo(ArticuloBean articulo) throws Exception {
        try {
            abrirRS();
            byte[] array = getRecord(articulo.getIdRecodset());
            
            System.out.println("1");
            List lista = articulo.readObject(array);
            System.out.println("2");
            lista.set(articulo.getPosicionID()-1, articulo);
            System.out.println("3");
            actualizarLista(articulo.getIdRecodset(), lista);
            System.out.println("4");
            
        } finally {
            cerrarRS();
        }
    }    
    
    public void grabarArticulo(Stack objectStack) throws Exception {
        try {
            abrirRS();
            
            Object obj;
            ArticuloBean beanTemp;
            int i = 0;
            List lista = new ArrayList();
            //mientras haya datos en la pila
            while ((obj = objectStack.pop()) != null) {
                //si es propiamente el cliente
                
                beanTemp = (ArticuloBean) obj;
                if (i % Configuracion.RMS_CANTREG == 0 && !lista.isEmpty()) {
                    guardar(lista);
                  //  System.out.println("x = "+ x);
                    lista.clear();
                    System.gc();
                }
                lista.add(beanTemp);
                i++;
                // si es el codigo del cliente
                
                
            }
            
            if (!lista.isEmpty()) {
                guardar(lista);
                lista.clear();
                System.gc();
            }
            lista = null;
        } finally {
            cerrarRS();
        }
    }
    
   
}
